package tests.colision;

import junit.framework.TestCase;
import modelo.*;
import modelo.estatico.Cuartel;
import modelo.proyectil.*;
import modelo.tanque.AlgoTank;

public class TestColisionProyectilConProyectil extends TestCase {
	
public void testBalaConCanion(){
	//elimino Contenedor para que los tests anteriores no afecten, por ser singleton
    Contenedor.getInstance().eliminarContenedor();
    Posicion p = new Posicion(20,20);
	Contenedor contenedor = Contenedor.getInstance();
    //Se crean el algoTnak y el cuartel, y se los setea al contenedor. El 2do es necesario para que no haya exception
	AlgoTank algoTank = new AlgoTank(p); 
	contenedor.setAlgoTank(algoTank);
	algoTank.setDireccion(new Vector(0,1));
	Posicion posCuartel = new Posicion (200,200);
	Cuartel cuartel = new Cuartel (posCuartel);
	contenedor.setCuartel(cuartel);
	Bala bala = new Bala (new Posicion(200,0), new Vector (1,0));
	BalaCanion canion = new BalaCanion (new Posicion(200,0), new Vector (1,0));
	contenedor.agegarColisionable(bala);
    contenedor.agegarColisionable(canion);
	contenedor.chequearColisiones();
	contenedor.actualizar();
	System.out.println(bala.estaVivo());
	assertTrue( bala.estaVivo() && canion.estaVivo());
	}

public void testCoheteConCanion(){
	Cohete cohete = new Cohete (new Posicion(200,0), new Vector (1,0));
	BalaCanion canion = new BalaCanion (new Posicion(200,0), new Vector (1,0));
    Contenedor contenedor = Contenedor.getInstance();
	contenedor.agegarColisionable(cohete);
    contenedor.agegarColisionable(canion);
	contenedor.chequearColisiones();
	contenedor.actualizar();
	System.out.println(cohete.estaVivo());
	assertTrue( cohete.estaVivo() && canion.estaVivo());
	}

public void testCoheteConbala(){
	Cohete cohete = new Cohete (new Posicion(200,0), new Vector (1,0));
	Bala bala = new Bala (new Posicion(200,0), new Vector (1,0));
    Contenedor contenedor = Contenedor.getInstance();
	contenedor.agegarColisionable(cohete);
    contenedor.agegarColisionable(bala);
	contenedor.chequearColisiones();
	contenedor.actualizar();
	System.out.println(cohete.estaVivo());
	assertTrue( cohete.estaVivo() && bala.estaVivo());
	}

}
